/**
 * 生成起止范围内的一组数据
 * @param {Number} start 起始数
 * @param {Number} stop 截止数
 * @param {Number} step 间隔数
 * @returns
 */
function range(start, stop, step) {
  let res = []
  let arg = arguments

  // 若参数小于2个，则默认[起始数]为0，[截止数]为第一个参数的值
  if (arg.length < 2) {
    stop = arg[0]
    start = 0
  }

  // 通过移位符转为数字
  stop = stop >> 0
  // 若间隔数不存在，默认为1步
  step = step >> 0 || 1

  for (let i = start; i < stop; i = i + step) {
    res.push(i)
  }
  return res
}

module.exports = range

// console.log(range(0)) // []
// console.log(range(10)) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// console.log(range(-5, 5)) // [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
// console.log(range(0, 10, 2)) // [0, 2, 4, 6, 8]
// console.log(range(0, -10, 2)) // []
